In many systems which routinely perform computations on a set of discrete variables or parameter values, it is often necessary to compute the minimum and maximum values from the set of parameter values. A traditional approach involves storing all of the parameter values in a memory, sorting the parameter values, and then obtaining the minimum and maximum values from the sorted list of values. In a system in which new data is added on a continuous basis, this traditional approach becomes very time consuming and potentially very costly in terms of memory resources and computing overhead.
In the communications industry, for example, certain systems are required to perform minimum and/or maximum determinations on a repetitive basis and at a relatively high speed. For example, one particular communications technology, referred to as asynchronous transfer mode (ATM), typically utilizes a number of switches or nodes to facilitate the rapid transfer of information cells between source and destination end-stations. Various schemes have been developed to discriminate between cells which are to be accepted by a particular node and cells which are to be discarded by the node. It may be desirable to prioritize cells received by a node using a rating scheme that assigns a priority identifier to each cell, such that the priority identifier indicates the importance of the cell relative to other cells received by the node. It would further appear desirable to implement an information collecting strategy at the node that exploits a high speed, low-overhead minimum and/or maximum priority identifier determination procedure.
There is a need for an improved approach to determining the minimum and/or maximum values from a set of values which increases in size over time, and a need for an approach which requires reduced memory requirements and processing overhead. There is an additional need for such an approach which can be exploited in high-speed ATM switches. The present invention fulfills these and other needs.